import 'package:flutter/material.dart';

/// 变亮
Color lighten(Color color, [double amount = .3]) {
  final hsl = HSLColor.fromColor(color);
  return hsl.withLightness((hsl.lightness + amount).clamp(0.0, 1.0)).toColor();
}

/// 变暗
Color darken(Color color, [double amount = .1]) {
  final hsl = HSLColor.fromColor(color);
  return hsl.withLightness((hsl.lightness - amount).clamp(0.0, 1.0)).toColor();
}

/// 标签颜色生成器
class TagColorGenerator {
  // 可自定义的一组基础颜色（你可以替换成品牌色、主题色等）
  static const List<Color> _palette = [
    Color.fromRGBO(65, 179, 84, 1),
    Color.fromRGBO(239, 94, 58, 1),
    Color.fromRGBO(251, 152, 17, 1),
    Color.fromRGBO(0, 105, 192, 1),
    Color.fromRGBO(81, 31, 151, 1),
  ];

  /// 根据下标返回一个稳定的颜色（可用于字体或边框）
  static Color colorForIndex(int index) {
    return _palette[index % _palette.length];
  }

  /// 返回一个带透明度的边框颜色（用于 tag 背景或边框）
  static Color borderColorForIndex(int index, [double opacity = 0.5]) {
    return colorForIndex(index).withOpacity(opacity);
  }
}
